#include <my_header.h>

void copy_file(const char *src, const char *dest)
{
    FILE *src_fp = fopen(src, "rb");
    // 对返回值进行错误处理
    ERROR_CHECK(src_fp, NULL, "fopen src");

    
    FILE *dest_fp = fopen(dest, "wb");
    if(dest_fp == NULL)
    {
        perror("fopen dest");
        fclose(src_fp); // 关闭已打开的源文件
        exit(1);
    }

    //  存储数据的中转站
   char buf[1024] = { 0  };
   size_t count;

   // 从源文件读取数据并写入目标文件
   while((count = fread(buf, 1, sizeof(buf), src_fp)) > 0)
   {
       fwrite(buf, 1, count, dest_fp);
   }
       // 关闭文件流
    fclose(src_fp);
    fclose(dest_fp);
}

/* Usage:./cpfile src dest  */
int main(int argc, char *argv[]) {
    ARGS_CHECK(argc, 3);
    copy_file(argv[1], argv[2]);
    return 0;
}

